/*
 * Projeto Destinado a Prefeitura de Goiânia.
 * Projeto de Modernização do Arquitetura de Desenvolvimento de Software.
 * Todos os Direitos Reservados.
 */
package br.com.prefeitura.goiania.orcamento.controle;

import br.com.prefeitura.goiania.orcamento.entidade.Usuario;
import br.com.prefeitura.goiania.orcamento.excecao.InfraExcecao;
import br.com.prefeitura.goiania.orcamento.excecao.NegocioExcecao;
import br.com.prefeitura.goiania.orcamento.negocio.UsuarioNegocio;
import br.com.prefeitura.goiania.orcamento.util.JSFUtil;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author Germinado
 */
@ManagedBean
@ViewScoped
public class LoginBean {

    @ManagedProperty(value = "#{usuarioNegocio}")
    private UsuarioNegocio usuarioNegocio;

    private Usuario formulario = null;
    private Usuario usuarioLogado = null;

    @PostConstruct
    public void inicializar(){
        formulario = new Usuario();
    }

    public void setUsuarioNegocio(final UsuarioNegocio negocio) {
        this.usuarioNegocio = negocio;
    }

    public String autentica(){

        String retorno = null;

        try {
            usuarioLogado = usuarioNegocio.autenticar(formulario);
            JSFUtil.adicionarPropriedadeSessao("usuarioLogado", usuarioLogado);  //Salvo na sessão para obter quando precisar.
            retorno = "principal";
        } catch (InfraExcecao e) {
            JSFUtil.adicionarMensagemErro(e.getMessage());
        } catch (NegocioExcecao e) {
            JSFUtil.adicionarMensagemAlterta(e.getMessage());
        }

        return retorno;

    }

    public Usuario getFormulario(){
        return formulario;
    }
    
}
